/*************************************CopyRight(c)************************************************
**                              电子DIY工作坊
**                                 
**************************************************************************************************
**Filename:			
**Version:			
**Author:				
**Date:					
**Description:	
**
**************************************************************************************************
**Version:	
**Modifier:	
**Datemodified:	
**Description:	
**
**************************************************************************************************/

#ifdef __cplusplus
extern "C"
{
#endif

/*********************************************************************
 * Include
 */
#include "board.h"

#include <stdint.h>
#include <stdbool.h>
/*********************************************************************
 * Macros
 */

/*********************************************************************
 * Constants
 */

/*********************************************************************
 * Typedefs
 */

/*********************************************************************
 * Global Variables
 */

/*********************************************************************
 * Global Functions
 */

/*********************************************************************
 * External Variables
 */

/*********************************************************************
 * External Functions
 */

/*********************************************************************
 * Local Vriables
 */
#if LEDS_NUMBER > 0
static const uint16_t m_board_led_list[LEDS_NUMBER] = LEDS_LIST;
#endif
/*********************************************************************
 * Local Functions
 */
 
#if LEDS_NUMBER>0

void board_led_on(uint32_t led_idx)
{
    assert_param(led_idx < LEDS_NUMBER);
    HAL_GPIO_WritePin(LED_GPIO_PORT,m_board_led_list[led_idx], LEDS_ACTIVE_STATE ? 1 : 0);
}

void board_led_off(uint32_t led_idx)
{
    assert_param(led_idx < LEDS_NUMBER);
    HAL_GPIO_WritePin(LED_GPIO_PORT,m_board_led_list[led_idx], LEDS_ACTIVE_STATE ? 0 : 1);
}

void board_leds_off(void)
{
    uint32_t i;
    for (i = 0; i < LEDS_NUMBER; ++i)
    {
        board_led_off(i);
    }
}

void board_leds_on(void)
{
    uint32_t i;
    for (i = 0; i < LEDS_NUMBER; ++i)
    {
        board_led_on(i);
    }
}
#endif
#ifdef __cplusplus
}
#endif
